package com.asiainfo_linkage.service;

import java.util.List;

import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.impl.NutDao;
import org.nutz.dao.pager.Pager;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.service.EntityService;

import com.asiainfo_linkage.model.RemTask;
import com.asiainfo_linkage.model.RemTaskMember;
import com.asiainfo_linkage.scheduler.TaskManager;

@IocBean
public class RemTaskService extends EntityService<RemTask>{
	
	@Inject
	protected Dao dao;
	
	@Inject
	protected RemTaskMemberService remTaskMemberService;
	
	@Inject
	protected TaskManager taskManager;
	
	public void save(RemTask remTask){
		//保存主表数据。
		this.dao().insert(remTask);
		if(remTask.getRemTaskMembers()!=null && remTask.getRemTaskMembers().size()>0){
			for(RemTaskMember remTaskMember:remTask.getRemTaskMembers()){
				remTaskMember.setTask_id(remTask.getTask_id());
				remTaskMemberService.dao().insert(remTaskMember);
			}
		}
		//取关联信息。
//		this.dao().fetchLinks(remTask, "members");
//		taskManager.scheduleTask(remTask);
	}
	
	public List<RemTask> queryEnabledTask(Pager pager){
		List<RemTask> list = this.dao().query(RemTask.class, Cnd.where("rem_status", "=", "1"), pager);
		//查询关联数据。
		for(RemTask remTask:list){
			this.dao().fetchLinks(remTask, "members");
		}
		return list;
	}

	//修改任务状态为无效
	public void statusUpdate(RemTask remTask){
		remTask.setRem_status("0");
		this.dao().update(remTask);	
	}
}
